This invention relates to a reception apparatus and method, a program and a recording medium, and more particularly to a reception apparatus and method, a program and a recording medium wherein a loss packet can be recovered simply and rapidly in response to a variation of the loss rate.
Real time communication which is performed through the Internet typically uses the UDP (User Datagram Protocol).
However, the UDP is a protocol which does not secure the reliability in that, even if data is lost or damaged on the Internet, the data cannot be recovered. For example, packet loss that a transmitted packet does not arrive at its destination sometimes occurs on the Internet. In particular, packet loss possibly occurs at a rate of 1% to 3% on the average and 10% at the highest from among all transmitted packets.
Accordingly, real time communication which is performed on the Internet using the UDP requires a mechanism for recovering a loss packet.
However, when a retransmission request is issued regarding a loss packet lost on the Internet, there is no security that a retransmission packet retransmitted in response to the retransmission request arrives without fail, but there is the possibility that the retransmission packet may be lost again.
Even if a retransmission packet is lost, the streaming quality can be enhanced by repetitively performing retransmission regarding the loss packet within a period of time within which the real time property is assured. In other words, in order to enhance the streaming quality, it is necessary to detect loss of a packet including a retransmission packet and repetitively issue a retransmission request for the non-arriving packet.
A related-art system which performs retransmission control taking the real time property into consideration is disclosed, for example, in Japanese Patent Laid-Open No. Hei 7-221789 (hereinafter referred to as Patent Document 1), Japanese Patent Laid-Open No. Hei 9-191314 (hereinafter referred to as Patent Document 2) or Japanese Patent Laid-Open No. 2002-84338 (hereinafter referred to as Patent Document 3). The system is based on the concept that the packet loss rate can be suppressed to a sufficiently low value even if the loss of retransmission packets is not taken into consideration. This is because, even if the packet loss rate is 10%, if a retransmission request is issued once, then the apparent loss rate drops to 1%.
However, since the amount by which the actual loss rate can be recovered varies, in order to secure that the apparent loss rate falls within a fixed range, it is necessary to satisfy, as a restriction to the network, the condition that the actual loss rate must remain within a range determined in advance. Further, the systems disclosed in Patent Document 1, Patent Document 2 and Patent Document 3 do not include any countermeasure against the loss of a retransmission packet.
Meanwhile, Japanese Patent Laid-Open No. 2001-119437 (hereinafter referred to as Patent Document 4) discloses a data transmission method wherein the sender side embeds information regarding the number of times by which retransmission has been performed into a succeeding packet so that the receiver side detects packet loss of retransmission packets and repetitively issues a retransmission request. However, according to the method of Patent Document 4, it is necessary for the sender side to retain information regarding the number of times of retransmission, and this considerably complicates a process of analyzing the packet format and packets.
Further, according to the method of Patent Document 4, information regarding the number of times of retransmission is always added to a packet irrespective of the loss rate. Therefore, the method of Patent Document 4 has a problem also that the overhead in processing of on the sender side or the receiver side is high.
Japanese Patent Laid-Open No. 2003-169040 (hereinafter referred to as Patent Document 5) discloses a system wherein, at a moment at which a packet is lost, a first retransmission request is issued and, after a periodical interval of time, a non-arriving packet is checked. Thus, even where a retransmission packet is lost, a retransmission request is issued repetitively. The system of Patent Document 5 is simpler in configuration than that of the method of Patent Document 4. However, in the system of Patent Document 5, since second and succeeding retransmission requests are not issued before retransmission time comes, where packet loss occurs frequently, if the timer value for counting the time till the retransmission time is not set to a suitable value, then retransmission request for a lost packet is not performed appropriately. On the other hand, if the timer value is excessively low, a retransmission request is issued frequently although the loss rate is low.
Patent Document 5 discloses a solution to the problem when the timer value is excessively low. According to the solution, within a period of round-trip time (RTT) after time at which a NACK (Negative ACKnowledge) packet, which is a retransmission requesting packet for requesting for retransmission, is transmitted, the same NACK packet is not transmitted again. In order to implement the solution, it is necessary to retain the transmission time with regard to all NACK packets. Further, it is necessary to determine, upon checking of a non-arriving packet, whether or not the non-arriving packet arrives in time before the reproduction time and further to determine whether not a NACK packet corresponding to the non-arriving packet has been transmitted within the RTT time in the past. This makes processing of a receiver terminal complicated.
A possible other method for repetitively performing retransmission request is that an interval of time after a retransmission request is issued from the receiver side and a retransmission packet arrives at the receiver side is estimated and, when it is detected that the retransmission packet does not arrive before estimated time of arrival, a retransmission request is issued again. However, according to the method described, it is necessary to perform control based on a timer for detecting whether or not a retransmission packet arrives at every estimated time of arrival. Generally, where an apparatus which performs a reception process as a software program is incorporated, such control based on a timer as described above applies a very high load. Accordingly, where a retransmission request is issued frequently, most part of the capacity of a CPU (Central Processing Unit) is used for a timer process which is a process regarding the time with regard to all of such retransmission requests. This stagnates a reception process of a packet or a display process of data transmitted in the form of a packet, resulting in deterioration of the reproduction quality of the data.
Thus, with existing techniques including the techniques disclosed in Patent Documents 1 to 5, it is difficult to adaptively reduce the load to a reception apparatus in response to a variation of the loss rate and enhance the retransmission performance.